home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue70 / Construc / webmod.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-04-28  |  2.6 KB  |  93 lines

  1. unit webmod;
  2. interface
  3. uses
  4.   Variants, SysUtils, Classes, HTTPApp, HTTPProd, DBXpress, FMTBcd, DBWeb,
  5.   DB, SqlExpr;
  6.  
  7. type
  8.   TWebModule1 = class(TWebModule)
  9.     PageProducer1: TPageProducer;
  10.     SQLConnection1: TSQLConnection;
  11.     SQLQuery1: TSQLQuery;
  12.     DataSetTableProducer1: TDataSetTableProducer;
  13.     procedure WebModule1Actions2Action(Sender: TObject; Request: TWebRequest;
  14.       Response: TWebResponse; var Handled: Boolean);
  15.     procedure PageProducer1HTMLTag(Sender: TObject; Tag: TTag;
  16.       const TagString: String; TagParams: TStrings;
  17.       var ReplaceText: String);
  18.     procedure WebModule1Actions0Action(Sender: TObject;
  19.       Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  20.     procedure WebModule1Actions1Action(Sender: TObject;
  21.       Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  22.   private
  23.     { Private declarations }
  24.   public
  25.     { Public declarations }
  26.   end;
  27.  
  28. var
  29.   WebModule1: TWebModule1;
  30.  
  31. implementation
  32. uses WebReq;
  33.  
  34. {$R *.xfm}
  35.  
  36. procedure TWebModule1.WebModule1Actions2Action(Sender: TObject; Request: TWebRequest;
  37.   Response: TWebResponse; var Handled: Boolean);
  38. begin
  39.   Response.Content := '<H1>Made in Kylix!</H1>';
  40. end;
  41.  
  42. procedure TWebModule1.PageProducer1HTMLTag(Sender: TObject; Tag: TTag;
  43.   const TagString: String; TagParams: TStrings; var ReplaceText: String);
  44. begin
  45.   if TagString = 'DATE' then
  46.     ReplaceText := DateTimeToStr(Now)
  47.   else
  48.     if TagString = 'counter' then
  49.       ReplaceText := Request.CookieFields.Values['counter']
  50.     else // login
  51.       ReplaceText := Request.QueryFields.Values['login']
  52. end;
  53.  
  54. procedure TWebModule1.WebModule1Actions0Action(Sender: TObject;
  55.   Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  56. var
  57.   Cookie: Integer;
  58.   Cookies: TStringList;
  59. begin
  60.   Cookie := StrToIntDef(Request.CookieFields.Values['counter'],0);
  61.   Inc(Cookie);
  62.   Cookies := TStringList.Create;
  63.   try
  64.     Cookies.Add('counter=' + IntToStr(Cookie));
  65.     Response.SetCookieField(Cookies,'','',-1,false);
  66.   finally
  67.     Cookies.Free
  68.   end
  69. end;
  70.  
  71. procedure TWebModule1.WebModule1Actions1Action(Sender: TObject;
  72.   Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  73. begin
  74.   try
  75. //  SQLConnection1.LoadParamsOnConnect := False;
  76.     SQLConnection1.Connected := True;
  77.     try
  78.       Response.Content :=
  79.         DataSetTableProducer1.Content
  80.     finally
  81.       SQLConnection1.Connected := True
  82.     end
  83.   except
  84.     on E: Exception do
  85.       Response.Content := 'Error: ' +
  86.         E.Message
  87.   end
  88. end;
  89.  
  90. initialization
  91.   WebRequestHandler.WebModuleClass := TWebModule1;
  92. end.
  93.